<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class smart_phone extends MX_Controller {

    private $module = 'smart_phone';
    private $table = 'contest';

   function __construct() {
        parent::__construct();
        $this->load->model($this->module . '_model', 'model');
        $this->load->model('admincp_modules/admincp_modules_model');
        $this->load->library('form_validation');
        if ($this->uri->segment(1) == 'admincp') {
            if ($this->uri->segment(2) != 'login') {
                if (!$this->session->userdata('userInfo')) {
                    header('Location: ' . PATH_URL . 'admincp/login');
                    return false;
                }
                $get_module = $this->admincp_modules_model->check_modules($this->uri->segment(2));
                $this->session->set_userdata('ID_Module', $get_module[0]->id);
                $this->session->set_userdata('Name_Module', $get_module[0]->name);
            }
            $this->template->set_template('admin');
            $this->template->write('title', 'Admin Control Panel');
        }
        $this->template->set_template('smart_phone');
		$this->template->write('title', 'Chỉ một tình yêu chỉ một C2');
    }

    /* ------------------------------------ Admin Control Panel ------------------------------------ */

    public function admincp_index() {
        modules::run('admincp/chk_perm', $this->session->userdata('ID_Module'), 'r', 0);
        $default_func = 'created';
        $default_sort = 'DESC';
        $data = array(
            'module' => $this->module,
            'module_name' => $this->session->userdata('Name_Module'),
            'default_func' => $default_func,
            'default_sort' => $default_sort
        );
        $this->template->write_view('content', 'BACKEND/index', $data);
        $this->template->render();
    }

    public function admincp_update($id = 0) {
        if ($id == 0) {
            modules::run('admincp/chk_perm', $this->session->userdata('ID_Module'), 'w', 0);
        } else {
            modules::run('admincp/chk_perm', $this->session->userdata('ID_Module'), 'r', 0);
        }
        $result[0] = array();
        if ($id != 0) {
            $result = $this->model->getDetailManagement($id);
        }
        $data = array(
            'result' => $result[0],
            'module' => $this->module,
            'id' => $id,
            'category'=>$this->model->contest_category()
        );
        $this->template->write_view('content', 'BACKEND/ajax_editContent', $data);
        $this->template->render();
    }

    public function admincp_save() {
        $perm = modules::run('admincp/chk_perm', $this->session->userdata('ID_Module'), 'w', 1);
        if ($perm == 'permission-denied') {
            print $perm;
            exit;
        }

        if ($_POST) {
            //Upload Image
            $fileName = array('image' => '', 'video' => '');
            if ($_FILES) {
                foreach ($fileName as $k => $v) {
                    if (isset($_FILES['fileAdmincp']['error'][$k])) {
                        $typeFileImage = strtolower(substr($_FILES['fileAdmincp']['type'][$k], 0, 5));
                        if ($typeFileImage == 'image' || $typeFileImage == 'video') {
                            $tmp_name[$k] = $_FILES['fileAdmincp']["tmp_name"][$k];
                            $file_name[$k] = $_FILES['fileAdmincp']['name'][$k];
                            $ext = strtolower(substr($file_name[$k], -4, 4));
                            if ($ext == 'jpeg') {
                                $fileName[$k] = time() . '_' . SEO(substr($file_name[$k], 0, -5)) . '.jpg';
                            } else {
                                $fileName[$k] = time() . '_' . SEO(substr($file_name[$k], 0, -4)) . $ext;
                            }
                        } else {
                            print 'Only upload Image.';
                            exit;
                        }
                    }
                }
            }
            //End Upload Image

            if ($this->model->saveManagement($fileName)) {
                //Upload Image
                if ($_FILES) {
                    foreach ($fileName as $k => $v) {
                        if (isset($_FILES['fileAdmincp']['error'][$k])) {
                            $type = $this->input->post('type');
                            if ($type == 'photo') {
                                $path = DIR_UPLOAD_IMAGE;
                                $upload_path = BASEFOLDER . $path;
                            }
                            if ($type == 'baicamnhan') {
                                $path = DIR_UPLOAD_BAIVIET;
                                $upload_path = BASEFOLDER . $path;
                            }
                            if ($type == 'video') {
                                $path = DIR_UPLOAD_VIDEO;
                                $upload_path = BASEFOLDER . $path;
                            }
                            if ($type == 'youtube') {
                                $path = DIR_UPLOAD_VIDEO;
                                $upload_path = BASEFOLDER . $path;
                            }
                            
                            move_uploaded_file($tmp_name[$k], $upload_path . $fileName[$k]);
                        }
                    }
                }
                //End Upload Image
                print 'success';
                exit;
            }
        }
    }

    public function admincp_delete() {
        $perm = modules::run('admincp/chk_perm', $this->session->userdata('ID_Module'), 'd', 1);
        if ($perm == 'permission-denied') {
            print $perm;
            exit;
        }
        if ($this->input->post('id')) {
            $id = $this->input->post('id');
            $result = $this->model->getDetailManagement($id);
            modules::run('admincp/saveLog', $this->module, $id, 'Delete', 'Delete');
            $this->db->where('id', $id);
            if ($this->db->delete(PREFIX . $this->table)) {
                //Xóa hình khi Delete
                //@unlink(BASEFOLDER.DIR_UPLOAD_NEWS.$result[0]->image);
                return true;
            }
        }
    }

    public function admincp_ajaxLoadContent() {
        $this->load->library('AdminPagination');
        $config['total_rows'] = $this->model->getTotalsearchContent();
        $config['per_page'] = $this->input->post('per_page');
        $config['num_links'] = 3;
        $config['func_ajax'] = 'searchContent';
        $config['start'] = $this->input->post('start');
        $this->adminpagination->initialize($config);

        $result = $this->model->getsearchContent($config['per_page'], $this->input->post('start'));
        $data = array(
            'result' => $result,
            'per_page' => $this->input->post('per_page'),
            'start' => $this->input->post('start'),
            'module' => $this->module
        );
        $this->session->set_userdata('start', $this->input->post('start'));
        $this->load->view('BACKEND/ajax_loadContent', $data);
    }

    public function admincp_ajaxUpdateStatus() {
        $perm = modules::run('admincp/chk_perm', $this->session->userdata('ID_Module'), 'w', 1);
        if ($perm == 'permission-denied') {
            print '<script type="text/javascript">show_perm_denied()</script>';
            $status = $this->input->post('status');
            $data = array(
                'status' => $status
            );
        } else {
            if ($this->input->post('status') == 0) {
                $status = 1;
            } else {
                $status = 0;
            }
            $data = array(
                'status' => $status
            );
            modules::run('admincp/saveLog', $this->module, $this->input->post('id'), 'status', 'update', $this->input->post('status'), $status);
            $this->db->where('id', $this->input->post('id'));
            $this->db->update(PREFIX . $this->table, $data);
        }

        $update = array(
            'status' => $status,
            'id' => $this->input->post('id'),
            'module' => $this->module
        );
        $this->load->view('BACKEND/ajax_updateStatus', $update);
    }

    public function admincp_ajaxUpdateWinner() {
        $perm = modules::run('admincp/chk_perm', $this->session->userdata('ID_Module'), 'w', 1);
        if ($perm == 'permission-denied') {
            print '<script type="text/javascript">show_perm_denied()</script>';
            $is_winner = $this->input->post('is_winner');
            $data = array(
                'is_winner' => $is_winner
            );
        } else {
            if ($this->input->post('is_winner') == 0) {
                $is_winner = 1;
            } else {
                $is_winner = 0;
            }
            $data = array(
                'is_winner' => $is_winner
            );
            modules::run('admincp/saveLog', $this->module, $this->input->post('id'), 'is_winner', 'update', $this->input->post('is_winner'), $is_winner);
            $this->db->where('id', $this->input->post('id'));
            $this->db->update(PREFIX . $this->table, $data);
        }

        $update = array(
            'is_winner' => $is_winner,
            'id' => $this->input->post('id'),
            'module' => $this->module
        );
        $this->load->view('BACKEND/ajax_updateWinner', $update);
    }


    /* ------------------------------------ End Admin Control Panel -------------------------------- */



    /* ------------------------------------ FRONTEND ------------------------------------ */

   public function list_win()
   {
      $data_weeks = $this->model->winner_weeks();
      header_xml();
		if(!empty($data_weeks))
		{
			
			foreach($data_weeks as $dt)
			{
			 
               $data = $this->model->list_winner_weeks($dt->week_id) ;
               $detail_weeks = $this->model->detail_weeks($dt->week_id);
               echo '<week active="'.$detail_weeks[0]->active.'">';
               echo '<id>' . "<![CDATA[" . $detail_weeks[0]->id . "]]>" . '</id>';
               echo '<name>' . "<![CDATA[" . date('d/m', strtotime($detail_weeks[0]->datestart)). ' - ' . date('d/m', strtotime($detail_weeks[0]->dateend)) . "]]>" . '</name>';
               if(!empty($data))
		       {
			
			         foreach($data as $dt)
			         {
                               echo '<item>';
                			   echo '<user>' . "<![CDATA[" . $dt->fullname . "]]>" . '</user>';
                			   echo '<code>' . "<![CDATA[" . $dt->code. "]]>" . '</code>';
                               echo '</item>';
                     }
                     
                }
                echo '</week>';
			
				
			}
		}
                  
        footer_xml();
   } 
    function upload_mp3()
    {
             $info = $this->session->userdata('FB');
             require 'application/libraries/fb/facebook.php';
             $facebook = new Facebook(array('appId'  => FB_CLIENT_ID, 'secret' => FB_CLIENT_SECRET));
             $user_id = $facebook->getUser();
             $signed_request = $facebook->getSignedRequest();
             $facebook->api('me/feed/', 'POST', array(
                'access_token' => $info['access_token'],
                'message' => 'Hãy cùng lắng nghe và chia sẻ bài hát "Chỉ một tình yêu" để lan tỏa tình yêu cuộc sống đến mọi người và nhận về những món quà thật ý nghĩa từ C2 nhé các bạn!',
                'name' => 'Chỉ một tình yêu – Anna Trương',
                'description' => 'Hãy cùng lắng nghe và chia sẻ bài hát "Chỉ một tình yêu" để lan tỏa tình yêu cuộc sống đến mọi người và nhận về những món quà thật ý nghĩa từ C2 nhé các bạn!',
                'caption' => 'http://mp3.zing.vn/bai-hat/Chi-Mot-Tinh-Yeu-Anna-Truong/ZW68UZU7.html',
                'picture' => PATH_URL.'static/images/share_facebook.jpg',
                'link' => 'http://mp3.zing.vn/bai-hat/Chi-Mot-Tinh-Yeu-Anna-Truong/ZW68UZU7.html'
            ));
    }
    function upload_nhaccuatui()
    {
             $info = $this->session->userdata('FB');
             require 'application/libraries/fb/facebook.php';
             $facebook = new Facebook(array('appId'  => FB_CLIENT_ID, 'secret' => FB_CLIENT_SECRET));
             $user_id = $facebook->getUser();
             $signed_request = $facebook->getSignedRequest();
             $facebook->api('me/feed/', 'POST', array(
                'access_token' => $info['access_token'],
                'message' => 'Hãy cùng lắng nghe và chia sẻ bài hát "Chỉ một tình yêu" để lan tỏa tình yêu cuộc sống đến mọi người và nhận về những món quà thật ý nghĩa từ C2 nhé các bạn!',
                'name' => 'Chỉ một tình yêu – Anna Trương',
                'description' => 'Hãy cùng lắng nghe và chia sẻ bài hát "Chỉ một tình yêu" để lan tỏa tình yêu cuộc sống đến mọi người và nhận về những món quà thật ý nghĩa từ C2 nhé các bạn!',
                'caption' => 'http://www.nhaccuatui.com/bai-hat/chi-mot-tinh-yeu-anna-truong.ygEK3nuLbe3N.html',
                'picture' => PATH_URL.'static/images/share_facebook.jpg',
                'link' => 'http://www.nhaccuatui.com/bai-hat/chi-mot-tinh-yeu-anna-truong.ygEK3nuLbe3N.html'
            ));
    }
    public function check_code()
    {
        $code = $this->rand_str(6);
        $check_code = $this->model->check_code($code);
        if($check_code)
        {
             $this->check_code();
        }
        else{
            return $code;
        }
    }
   
    function OpenId($type = '')
    {
        $data['type'] = $type;
        $this->load->view('FRONTEND/OpenId', $data);
    }
    function LoginOpenId($type = 'google') {
        $info = get_attr_profile_openid($type);
        if (!empty($info['email'])) {
            $username = explode('@', $info['email']);
            //LOGIN SUCCESS			
            $USER = $this->model->get_profile($info['id']);
            $this->session->set_userdata('FB', $info);
            if (empty($USER)) {
                $data = array(
                    'type' => 1,
                    'fb_id' => $info['id'],
                    'username' => $username[0],
                    'email' => $info['email'],
                    'fullname' => $info['full_name'],
                    'randomkey' => _token(),
                    'created' => date('Y-m-d H:i:s')
                );
                $this->db->insert('cli_user', $data);
            } else {
                $data['fb_id'] = $info['id'];
                $this->db->where('id', $USER->id)->update('cli_user', $data);
            }
            $USER =  $this->model->get_profile($info['id']);
            $this->session->set_userdata('ss_user_id', $USER->id);
            $this->session->set_userdata('ss_fb_id', $info['id']);
            $json['st'] = 'SUCCESS';
            $json['information'] = (empty($USER->cmnd)) ? 'FALSE' : 'TRUE';
            print_r(json_encode($json));
        }
    }
    function rand_str($length = 8, $chars = '1234567890')
    {
        // Length of character list
        $chars_length = (strlen($chars) - 1);
    
        // Start our string
        $string = $chars{rand(0, $chars_length)};
        
        // Generate random string
        for ($i = 1; $i < $length; $i = strlen($string))
        {
            // Grab a random character from our list
            $r = $chars{rand(0, $chars_length)};
            
            // Make sure the same two characters don't appear next to each other
            if ($r != $string{$i - 1}) $string .=  $r;
        }
        
        // Return the string
        return $string;
    }
    
    function _uniq()
	{
		return md5(uniqid(rand(), true));
	}
    function get_award()
    {
        $data= $this->model->get_prices();
       
        if($data)
        {
           
             header_xml();
             if(!empty($data))
             {
			
			         foreach($data as $dt)
                 {
                 echo '<item>';
                 echo '<content>'. "<![CDATA[".strip_tags($dt->content, "<br><br /><p><strong>")."]]>" .'</content>';
                 echo '<thumb>'."<![CDATA[".PATH_URL.'static/uploads/prices/'.$dt->image."]]>".'</thumb>';
                 echo '</item>';
                 }
             }
             footer_xml();
        }
        
    }
   public function view_winer()
   {

      $weed_id = $this->input->post("week_id");
      $data_weeks = $this->model->winner_weeks();
      $data = $this->model->list_winner_weeks($weed_id) ;
      $detail_weeks = $this->model->detail_weeks($weed_id);

   } 
    public function view_check_login()
    {
        $facebook = $this->session->userdata('ss_fb_id');
        if($facebook)
        {
            echo "true";
            exit();
        }
        else
        {
            echo  "false";
            exit();
        }
    }
    public function view_check_first_time()
    {
        $facebook = $this->session->userdata('ss_fb_id');
        if($facebook)
        {
             $USER =  $this->model->get_profile($facebook);
                 if($USER[0]->phone)
                 {
                      echo  "false";
                      exit();
                 }
                 else
                 {
                     echo  "true";
                     exit();
                 }
                 
        }
    }
    public function view_get_info()
    {
        $facebook = $this->session->userdata('ss_fb_id');
        if($facebook)
        {
             $USER =  $this->model->get_profile($facebook);
        }
        $data = array(
            'user' => $USER,
            
        );
         $this->load->view('FRONTEND/ajax_info',$data);
    }
    public function view_code()
    {
        $type = $this->input->post("type");
        if($type == 1)
        {
            $this->upload_mp3();
        }
        if($type == 2){
            $this->upload_nhaccuatui();
        }
        $facebook = $this->session->userdata('ss_fb_id');
        if($facebook){
            $code = $this->check_code();
            $USER =  $this->model->get_profile($facebook);
            $week_id=$this->model->get_weeks();
            $data = array(
                    'user_id' => $USER[0]->id,
                    'week_id' => $week_id[0]->id,
                    'is_winner' => 0,
                    'code' => $code,
                    'status' => 1,
                    'created' => date('Y-m-d H:i:s'),
                    'ip'=>getIP(),
            );
            $this->db->insert('cli_contest', $data);
            $data_email = array(
                    'email' => $USER[0]->email,
                    'html' => 'Chúc mừng bạn đã chia sẻ thành công bài hát: “Chỉ một tình yêu” của C2 <br />Hãy theo dõi trên website: www.c2life.com.vn hoặc fanpage: www.facebook.com/c2life vào 10h thứ 4 hàng tuần để xem bạn có phải là người may mắn nhận được những món quà thú vị từ C2 không nhé!!! <br />Và đây là mã số may mắn của bạn: '.$code,
                    'subject' => 'Chỉ một tình yêu chỉ một C2 - Mã dự thưởng'
                );
            $this->model->send_email($data_email);
            $data = array(
                'code' => $code,
                
            );
            $this->load->view('FRONTEND/ajax_selectlink',$data);   
            
        }
    }
    function view_update_info()
    {
        $fullname = $this->input->post('fullname');
        $phone = $this->input->post('phone');
        $facebook = $this->session->userdata('ss_fb_id');
        $data = array(
                    'fullname' => $fullname,
                    'phone' => $phone
        );
        $this->db->where('fb_id', $facebook)->update('cli_user', $data);
        echo  "true";
        exit();
    }
    function index_iphone()
    {
        $weed_id = 1;
        $weeks = $this->model->winner_weeks();
        $week_winner = $this->model->list_winner_weeks($weed_id) ;
        $data = array(
            'weeks' => $weeks,
            'week_winner' => $week_winner,
        );
        $this->template->write_view('content', 'FRONTEND/iphone',$data);
        $this->template->render();
    }
    function index_ipad(){
        $this->template->write_view('content', 'FRONTEND/ipad');
        $this->template->render();
    }
    
   
}